using System;
using System.Collections.Generic;
using System.Text;

namespace Deepcode.Flux.Core.Systems.Workflow.Interfaces
{
	/// <summary>
	/// Where a workflow handler method config object returns an ASCX
	/// control rather than builds the form directly, this interface is
	/// used in the ASCX to make it easier to serialise and de-serialise
	/// back into the IWorkflowHandlerMethodConfig class.
	/// </summary>
	public interface IWorkflowConfigControl
	{
		/// <summary>
		/// Load the XML Serialisation into controls
		/// </summary>
		/// <param name="XmlDatapacket"></param>
		void DeSerialise(string XmlDatapacket);
		/// <summary>
		/// Save from the Controls back into an XML String
		/// </summary>
		/// <returns></returns>
		string Serialise();
		/// <summary>
		/// Tell the configuration what handler etc it is using
		/// </summary>
		/// <param name="HandlerID"></param>
		/// <param name="DefinitionID"></param>
		/// <param name="ProcessID"></param>
		void SetWorkflow(string HandlerID, int DefinitionID, int ProcessID);
	}
}
